package authentication

import "net"

//
// AuthClientHandler
// @Description:
//
type AuthClientHandler interface {
	//
	// OnMessage
	// @Description:
	// @param msg
	//
	OnMessage(msg string)
	//
	// OnReport
	// @Description:
	// @param payload
	//
	OnReport(payload []byte)
	//
	// OnLogin
	// @Description:
	// @param reply
	//
	OnLogin(err error)
	//
	// OnLogout
	// @Description:
	// @param reply
	//
	OnLogout(err error)
	//
	// OnDisconnect
	// @Description:
	//
	OnDisconnect()
}

//
// AuthServerHandler
// @Description:
//
type AuthServerHandler interface {
	//
	// OnMessage
	// @Description:
	// @param msg
	//
	OnMessage(address string, conn *net.TCPConn, packet *TransportPacket)
	//
	// OnReport
	// @Description:
	// @param payload
	//
	OnReport(packet *TransportPacket, address string)
	//
	// AfterLogin
	// @Description:
	// @param reply
	//
	AfterLogin(packet *TransportPacket, address string)
	//
	// AfterLogout
	// @Description:
	// @param reply
	//
	AfterLogout(packet *TransportPacket, address string)
	//
	// Disconnect
	// @Description:
	// @param address
	//
	Disconnect(address string, err error)
}
